

proc sumdiv num {
  set res 0
  for {set i 1} {$i < [expr {$num / 2}]} {incr i} {
    if {$num % $i == 0} then { incr res $i }
  }
  return $res
}

set N 2000
array set D {}
for {set i 1} {$i < $N} {incr i} {
  if {![info exists D($i)]} { set D($i) [sumdiv $i] }
  if {$D($i) > $N} { continue }
  if {![info exists D($D($i))]} { set D($D($i)) [sumdiv $D($i)] }
  if {$i == $D($i)} { puts "$i - $D($i)" }
}
